A once-per-revolution index marker is conventionally generated within disk drives to mark in time the beginning of each concentric data track. The index marker also marks in space a beginning of the concentric data tracks formed on the data storage surface. Thus, "index" denotes both an electrical signal and a common physical reference location on the data storage surface. The index marker signal may be generated by sensing a feature, such as a reluctance-altering slug or insert, of a disk spindle with a suitable sensor. It may be generated by electro-optical sensing of a hole in a rotating floppy disk. It may also be generated by sensing a prerecorded data feature in each recorded data storage track. The index marker signal not only designates track beginning, it is repetitively monitored and compared with a timer to assure that the disk is rotating at a desired angular velocity.
A data track is usually divided into a series of data sectors. In fixed block length designs, the sector length corresponds to the data block length (plus certain overhead information relating to head positioning, sector identification, and data block error correction coding information, for example). When a particular data track is selected, it may be necessary to wait until the particular sector of interest passes beneath the data transducer head. This delay is known in the art as "rotational latency". Average latency is the time, on average, required to reach the sector of interest. Usually, average latency is equal to the time period for one half of one revolution of the data storage disk.
Frequently, hard disk drives are linked together to form data storage arrays. When a record is sufficiently large, or when the record is recorded near the end of the user data space of one disk drive and spills over onto a subsequent drive in order, it is necessary to switch recording (or playback) operations from one drive to another. If the disk spindles are not phase synchronized, meaning that the index markers of both drives are not in rotational alignment, a rotational latency will be incurred during the switchover from the first drive to the second drive, before the recording (or playback) operation may be resumed. The latency can be reduced or eliminated if the disk spindles rotate so that their respective index markers occur at the same time.
In addition to the problem with incurring rotational latencies in switching from drive to drive, there are some computing applications which require greater effective bandwidth than is provided by a single disk drive. Data-intensive computer applications include large graphics databases, wideband data communications, and video data storage and editing, as some examples. In order to provide increased bandwidth data storage and retrieval, several approaches have been followed.
One approach is to divide each user data word up into several segments, such as three or four bits, and record each segment in a disk drive of the array. In the three bit example, three drives would be employed for a byte-length data word, with one drive also recording a parity bit.
Another approach assigns each bit line of a parallel data path to a particular disk drive, and data transfer operations are carried out simultaneously between a plurality of disk drives arranged as an array. Eight disk drives are operated synchronously in order to provide storage on a byte-by-byte basis, rather than bit-by-bit in the case of a single drive. A synchronized ninth drive facilitates recording of a parallel parity bit for each byte. Parallel disk drive arrays require that spindles become, and remain, synchronized. As the spindle synchronization tolerance becomes reduced, less temporary buffering of data is required in order to accommodate the spindle speed tolerance.
There have been prior efforts to achieve spindle synchronization. One exemplary approach of the prior art is described in U.S. Pat. No. 3,893,178 to Sordello, entitled: "Synchronization of Multiple Disc Drives". This approach defined one disk drive as the master, and required that its spindle speed be set very carefully, preferably under manual control. A second disk drive was denoted the slave. Index markers from the master and the slave were generated and compared to develop a digital pulse width interval corresponding to the amount of rotational error between the two spindles. The variable-width pulse was then converted into a charge/discharge analog ramp which was applied to a slave motor speed control of the slave drive to speed up or slow down the slave spindle motor. Once the pulse went to zero-width, the slave spindle index marker was aligned rotationally with the master index marker, and "phase lock" was achieved. This approach works well, but requires special synchronization circuitry within each disk drive, as well as separate index marker lines from the master and slave drives to the synchronization circuit.
A more recent proposal for spindle synchronization is found in U.S. Pat. No. 4,907,105 to Kurzweil, Jr., entitled: "Synchronized Spindle Control for Disk Drives". In this approach, one drive is designated as the master drive, and all other drives are designated as slave drives. An output signal from a speed control loop of the master drive is input to each slave drive. The incoming master signal is summed with the slave's own spindle marker signal to generate an error correction signal which is used by the slave's speed control loop to speed up or slow down the rotation of the slave drive spindles, until their index markers are synchronized with the index marker of the master drive. This approach also required designation of one disk drive as master by setting a jumper or making some other switch setting, and also required special circuitry at each slave to achieve synchronism and phase lock with the master drive's index marker signal. If the master drive failed in service, all spindle synchronization was lost until a new master could be manually selected by a service technician, etc.
The use of an array of disk drives with synchronized spindles to emulate performance of a single high data transfer rate virtual disk drive is described in U.S. Pat. No. 5,128,810 to Halford, entitled: "Single Disk Emulation Interface for an Array of Synchronous Spindle Disk Drives". A single disk drive controller receives data words at high speed from a supercomputer. The controller divides the data words up into subparts, and sends each subpart to a separate disk drive for storage. The controller also generates a master once-per-revolution clock reference signal which is broadcast to all of the individual drives in order to force spindle synchronization. Details concerning methods for achieving synchronization within each disk drive with the externally supplied master clock reference signal are not provided.
These references illustrate the widening need for disk drive spindle synchronization, so that plural disk drives rotating in unison may effectively be employed within a drive array. However, a hitherto unsolved need has remained for a spindle synchronization method which does not require an external master clock reference signal, or designation of one drive as a master and the other drives as slaves, or a number of dedicated control lines between the drives comprising the array.